package migrations

import (
	"toolsweb-admin/models"

	"gorm.io/gorm"
)

func InitTables(db *gorm.DB) error {
	// 首先创建 ToolCategory 表
	if err := db.AutoMigrate(&models.ToolCategory{}); err != nil {
		return err
	}

	// 然后创建 ToolItem 表，并手动添加外键约束
	if err := db.AutoMigrate(&models.ToolItem{}); err != nil {
		return err
	}

	// 手动添加外键约束
	if err := db.Exec("ALTER TABLE tool_items ADD CONSTRAINT fk_tool_categories_tools FOREIGN KEY (tool_category_id) REFERENCES tool_categories(id)").Error; err != nil {
		return err
	}

	// 迁移其他表
	return db.AutoMigrate(
		&models.DocCategory{},
		&models.DocItem{},
		&models.SoftwareCategory{},
		&models.SoftwareItem{},
		&models.Product{},
	)
}
